﻿using System;
using System.Threading.Tasks;

namespace SystemCore.Abstractions
{
    public interface ICacheProvider
    {
        Task<bool> LockAsync(string key, string value);
        Task<bool> ReleaseAsync(string key);

        Task<object> SendToQueueAsync(string key, object value);

        Task<object> ReceiveFromQueueAsync(string key);

        Task<bool> PutAsync(string key, object value, string region);
        Task<object> GetAsync(string key, string region);
    }
}
